/*
 * VisitedVertexInfo.h
 *
 *  Created on: Sep 27, 2009
 *      Author: jbarreneche
 */

#ifndef VISITEDVERTEXINFO_H_
#define VISITEDVERTEXINFO_H_

#include "core/Vertex.h"

class VisitedVertexInfo {
public:
	VisitedVertexInfo(Vertex* vertex, double reachCost = 0.0,
			VisitedVertexInfo* reachedFrom = NULL,
			Edge* reachedThrough = NULL);
	virtual ~VisitedVertexInfo();
	virtual void updateInfo(double newCost, VisitedVertexInfo* reachedFrom,
			Edge* reachedThrough);
	virtual Vertex* getRealVertex();
	virtual double getReachCost();
	virtual Edge* getReachedThrough();
	virtual VisitedVertexInfo* getReachedFrom();
private:
	Vertex* vertex;
	double reachCost;
	Edge* reachedThrough;
	VisitedVertexInfo* reachedFrom;
};

#endif /* VISITEDVERTEXINFO_H_ */
